函数函数概述函数实际就是多行代码的抽取(多行代码会构成特定的功能)(方法)函数的优点减少冗余代码(重复的代码放在函数里面在需要的时候调用)函数封装(特定的一些代码使用函数来包起来),提高了代码的可维护性及可阅读性函数的分类1.系统函数window里面的所有函数都属于系统函数(console.log()alert()prompt()...)2.内置函数所有的内置对象里面的函数都叫内置函数(Math.pow())3.自定义函数(自己定义的函数)内置函数和系统函数我们更关注于他的使用自定义函数(定义以及使用)1.使用function关键词定义匿名函数(没有名字的函数)(个人感觉用途不是很广,因为,他
引子在使用events_statements_current的过程中发现,同一线程在同一时刻,可能有多条记录,与直观感觉不太一样,于是跟踪了一下内部实现,有了本文。STATEMENTSTACK的定义STATEMENTSTACK是events_statements_current表被后用于存储当前会话执行语句堆栈的数据结构。在MySQL8中,相关定义如下:/**Maxsizeofthestatementsstack.*/uintstatement_stack_max;/**nestedstatementlost*/uintnested_statement_lost;structPFS_ALIGN
引子在使用events_statements_current的过程中发现,同一线程在同一时刻,可能有多条记录,与直观感觉不太一样,于是跟踪了一下内部实现,有了本文。STATEMENTSTACK的定义STATEMENTSTACK是events_statements_current表被后用于存储当前会话执行语句堆栈的数据结构。在MySQL8中,相关定义如下:/**Maxsizeofthestatementsstack.*/uintstatement_stack_max;/**nestedstatementlost*/uintnested_statement_lost;structPFS_ALIGN
之前给大家写过如何将ChatGPT接入微信和钉钉,没看过的可以往公众号前面的文章翻翻,最近又发现了一个有趣的玩法,周末找时间实现了一下,感觉挺不错的,分享给大家。背景事情的起因是阿粉在朋友圈看到了这样一条信息,敏感信息已经去掉了,意思很明显就是将OpenAI接入到知识星球了,用户可以通过星球提问的方式来对OpenAI进行提问,OpenAI会自动回答相应用户的问题,并通知到用户。看到这就很有意思了,对于运营了知识星球的博主来说,特别是技术类博主,很多简单的技术知识点,完全就可以通过自动化来进行回答,而不用太消耗自己的时间。那有的小伙伴就要问了,这跟用户自己百度有什么区别呢?只要用过OpenAI的
之前给大家写过如何将ChatGPT接入微信和钉钉,没看过的可以往公众号前面的文章翻翻,最近又发现了一个有趣的玩法,周末找时间实现了一下,感觉挺不错的,分享给大家。背景事情的起因是阿粉在朋友圈看到了这样一条信息,敏感信息已经去掉了,意思很明显就是将OpenAI接入到知识星球了,用户可以通过星球提问的方式来对OpenAI进行提问,OpenAI会自动回答相应用户的问题,并通知到用户。看到这就很有意思了,对于运营了知识星球的博主来说,特别是技术类博主,很多简单的技术知识点,完全就可以通过自动化来进行回答,而不用太消耗自己的时间。那有的小伙伴就要问了,这跟用户自己百度有什么区别呢?只要用过OpenAI的
从排查一次匪夷所思的coredump,引出各种体系架构的差异。 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处。周荣华@燧原科技1 背景从全世界有记载的第一台计算机Z1(computer)-Wikipedia在1936年发明,到1946年冯诺依曼体系架构的清晰提出,计算机体系架构的演进虽然没有什么革命性的变化,但各种体系架构的微调还是很明显的。 发展到现在虽然存在X86/ARM/MIPS/ALPHA/PPC/RISC-V等多种门派,但实际的设计思想上,主要有两种,一种是基于X86的系统架构,另外一种就是其他系统架构。为什么这么分?因为X86的很多特性,基本
从排查一次匪夷所思的coredump,引出各种体系架构的差异。 本文中的所有内容来自学习DCC888的学习笔记或者自己理解的整理,如需转载请注明出处。周荣华@燧原科技1 背景从全世界有记载的第一台计算机Z1(computer)-Wikipedia在1936年发明,到1946年冯诺依曼体系架构的清晰提出,计算机体系架构的演进虽然没有什么革命性的变化,但各种体系架构的微调还是很明显的。 发展到现在虽然存在X86/ARM/MIPS/ALPHA/PPC/RISC-V等多种门派,但实际的设计思想上,主要有两种,一种是基于X86的系统架构,另外一种就是其他系统架构。为什么这么分?因为X86的很多特性,基本
hello,大家好呀,我是既写Java又写Go的小楼,在写Go的过程中经常对比这两种语言的特性,踩了不少坑,也发现了不少有意思的地方,今天就来聊聊Go自带的HttpClient的超时机制。JavaHttpClient超时底层原理在介绍Go的HttpClient超时机制之前,我们先看看Java是如何实现超时的。写一个Java原生的HttpClient,设置连接超时、读取超时时间分别对应到底层的方法分别是:再追溯到JVM源码,发现是对系统调用的封装,其实不光是Java,大部分的编程语言都借助了操作系统提供的超时能力。然而Go的HttpClient却提供了另一种超时机制,挺有意思,我们来盘一盘。但在
hello,大家好呀,我是既写Java又写Go的小楼,在写Go的过程中经常对比这两种语言的特性,踩了不少坑,也发现了不少有意思的地方,今天就来聊聊Go自带的HttpClient的超时机制。JavaHttpClient超时底层原理在介绍Go的HttpClient超时机制之前,我们先看看Java是如何实现超时的。写一个Java原生的HttpClient,设置连接超时、读取超时时间分别对应到底层的方法分别是:再追溯到JVM源码,发现是对系统调用的封装,其实不光是Java,大部分的编程语言都借助了操作系统提供的超时能力。然而Go的HttpClient却提供了另一种超时机制,挺有意思,我们来盘一盘。但在
起因事情的起因很有趣,前几天我正对着电脑发呆的时候,突然有个安全交流群的群友来找我交流一个问题大概的意思就是,他在挖SRC的时候,发现一处资产存在目录遍历漏洞,它通过这个漏洞,找到目标资产使用了一个名为phpmailer的中间件(应该类似于中间件吧),问我有没有办法利用,我查了一下这个组件的漏洞信息。最新的洞似乎截止到6.5.0版本以前很不幸,群友这个版本是6.5.1,刚好就不能利用了找不到符合版本的洞没关系,抱着学习的心态,我还是看了一下它的历史漏洞成因,不看不知道,看了之后就学到一些好玩的新知识了,这也就是为什么会有这篇文章的原因。CVE-2016-10033的简单分析CVE-2016-1